package ink.xiaobaibai.service;

import com.baomidou.mybatisplus.extension.service.IService;
import ink.xiaobaibai.entity.CouponCode;

import java.util.Date;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author xiaobaibai
 * @since 2021-08-06
 */
public interface ICouponCodeService extends IService<CouponCode> {

    /**
     * 新增一个优惠券bitMap的时间
     */
    public void addCouponCodeBitMap(String letterPre, Date expiresTime);

    /**
     * 修改一个优惠券bitMap的时间
     */
    public void updateCouponBitMap(String letterPre, Date expiresTime);

    /**
     * 判断当前优惠码是否有效
     */
    public CouponCode validCouponCode(String code, Integer type);

    /**
     * 使用当前优惠券码
     */
    public void useCouponCode(String code);

    /**
     * 获取当前优惠券码的折扣率
     */
    public Integer getCouponPercentage(String code);

    /**
     * 解锁当前券码
     */
    public void unlockCouponCode(String code);

    /**
     * 删除当前优惠码bit
     */
    public void deleteCouponBit(String letterPre);

    /**
     * 根据OrderId消耗当前优惠码
     */
    public void consumeCouponCode(String orderId, Integer userId);

}
